home *** CD-ROM | disk | FTP | other *** search
- /*
- * $VER: shadow 1.1
- * by Carl Licke / Turbid design
- * mailto:carl.licke@swipnet.se
- * http://home2.swipnet.se/~w-24653/
- *
- * Arexx script for ImageFX
- */
-
- OPTIONS RESULTS
-
- xdiff =GETCLIP('shadow_xdiff')
- ydiff =GETCLIP('shadow_ydiff')
- xincr =GETCLIP('shadow_xincr')
- yincr =GETCLIP('shadow_yincr')
- shade =GETCLIP('shadow_shade')
- gauss =GETCLIP('shadow_gauss')
- mgik =GETCLIP('shadow_mgik')
- aalias =GETCLIP('shadow_aalias')
- bgswap =GETCLIP('shadow_bgswap')
- shcol =GETCLIP('shadow_shcol')
- bgcol =GETCLIP('shadow_bgcol')
-
- /* ------ here you may change the defaults ------ */
- IF xdiff='' THEN xdiff=6
- IF ydiff='' THEN ydiff=6
- IF xincr='' THEN xincr=15
- IF yincr='' THEN yincr=15
- IF shade='' THEN shade=50
- IF gauss='' THEN gauss=2
- IF mgik='' THEN mgik=0
- IF aalias='' THEN aalias=0
- IF bgswap='' THEN bswap=0
- IF shcol='' THEN shcol=0
- IF bgcol='' THEN bgcol=0
-
- Gadget.1 = 'I/140/18/x difference (+|-)/'xdiff
- Gadget.2 = 'I/140/35/y difference (+|-)/'ydiff
- Gadget.3 = 'I/140/52/x size increase/'xincr
- Gadget.4 = 'I/140/69/y size increase/'yincr
- Gadget.5 = 'I/140/86/shade (0-100)/'shade
- Gadget.6 = 'I/140/103/softness (0-5)/'gauss
- Gadget.7 = 'X/230/19/magic scissors/'mgik
- Gadget.8 = 'X/230/36/anti alias/'aalias
- Gadget.9 = 'X/230/53/background from swap/'bgswap
- Gadget.10= 'X/230/70/pick color for shadow/'shcol
- Gadget.11= 'X/230/87/pick color for backg./'bgcol
- Gadget.12= 'X/230/104/save these settings/1'
-
- ComplexRequest '"shadow"' 12 Gadget 427 140
- IF rc ~= 0 THEN EXIT
-
- xdiff = result.1
- ydiff = result.2
- xincr = result.3
- yincr = result.4
- shade = result.5
- gauss = result.6
- mgik = result.7
- aalias = result.8
- bgswap = result.9
- shcol = result.10
- bgcol = result.11
- saveit = result.12
-
- ifxver=0
- ADDRESS COMMAND 'list ImageFX:Matrix/GuassianLow ImageFX:Matrix/GaussianMedium ImageFX:Matrix/GuassianHigh >NIL:'
- IF rc = 0 THEN ifxver=1
- ADDRESS COMMAND 'list ImageFX:Storage/Convolve/GaussianLow ImageFX:Storage/Convolve/GaussianMedium ImageFX:Storage/Convolve/GaussianHigh >NIL:'
- IF rc = 0 THEN ifxver=2
- IF ifxver=0 THEN DO
- RequestNotify 'Error! Please contact carl.licke@swipnet.se'
- EXIT
- END
-
- IF saveit=1 THEN DO
- CALL SETCLIP('shadow_xdiff', xdiff)
- CALL SETCLIP('shadow_ydiff', ydiff)
- CALL SETCLIP('shadow_xincr', xincr)
- CALL SETCLIP('shadow_yincr', yincr)
- CALL SETCLIP('shadow_shade', shade)
- CALL SETCLIP('shadow_gauss', gauss)
- CALL SETCLIP('shadow_mgik', mgik)
- CALL SETCLIP('shadow_aalias', aalias)
- CALL SETCLIP('shadow_bgswap', bgswap)
- CALL SETCLIP('shadow_shcol', shcol)
- CALL SETCLIP('shadow_bgcol', bgcol)
- END
-
- shr=0
- shg=0
- shb=0
- bgr=255
- bgg=255
- bgb=255
- xdiff=xdiff/2
- ydiff=ydiff/2
-
- GetPalette '0'
- PARSE VAR result r g b
-
- IF bgcol=1 & bgswap=1 THEN DO
- RequestNotify 'No background pick, you told me to use swap.'
- bgcol=0
- END
-
- IF shcol=1 THEN DO
- ActiveColor 0
- Message 'pick shadow color'
- Pick
- WaitFor SELECTUP
- GetPalette '-1'
- PARSE VAR result shr shg shb
- SetPalette 0 r g b
- Message ''
- END
-
- IF bgcol=1 THEN DO
- ActiveColor 0
- Message 'pick background color'
- Pick
- WaitFor SELECTUP
- GetPalette '-1'
- PARSE VAR result bgr bgg bgb
- Message ''
- END
-
- Redraw Off
- SaveUndo
- Undo Off
- AlphaChannel Off
- EdgeMode Normal 0
- FillMode Solid 0 0 0 SMOOTH
- Grey2Color
- Transparency 0 0 1
-
- GetMain
- PARSE VAR result name width height depth
-
- IF bgswap=1 THEN DO
- Swap
- SaveBufferAs ILBM "T:shadowswaptemp.ilbm"
- Swap
- SaveBufferAs ILBM "T:shadowtemp.ilbm"
- END
-
- CALL pickitup
-
- newwidth=width+xincr
- newheight=height+yincr
-
- Scale newwidth newheight+8 BORDER
-
- ClearBuffer bgr bgg bgb FORCE
-
- ActiveColor 0
- SetPalette '-1' shr shg shb
-
- IF bgswap=1 THEN SetPalette '-1' 0 0 0
-
- Blend shade
- DrawMode Color
- NewArea
- AddArea (newwidth/2)+xdiff (newheight/2)+ydiff
- FreeDraw
- DrawMode Normal
- Blend 100
-
- IF ifxver=1 THEN DO
- IF gauss=1 THEN DO
- Convolve "Matrix/GuassianLow"
- END
- IF gauss=2 THEN DO
- Convolve "Matrix/GaussianMedium"
- END
- IF gauss=3 THEN DO
- Convolve "Matrix/GuassianHigh"
- END
- IF gauss=4 THEN DO
- Convolve "Matrix/GuassianHigh"
- Convolve "Matrix/GuassianHigh"
- END
- IF gauss=5 THEN DO
- Convolve "Matrix/GuassianHigh"
- Convolve "Matrix/GuassianHigh"
- Convolve "Matrix/GuassianHigh"
- END
- END
-
- IF ifxver=2 THEN DO
- IF gauss=1 THEN DO
- Convolve "Storage/Convolve/GaussianLow"
- END
- IF gauss=2 THEN DO
- Convolve "Storage/Convolve/GaussianMedium"
- END
- IF gauss=3 THEN DO
- Convolve "Storage/Convolve/GaussianHigh"
- END
- IF gauss=4 THEN DO
- Convolve "Storage/Convolve/GaussianHigh"
- Convolve "Storage/Convolve/GaussianHigh"
- END
- IF gauss=5 THEN DO
- Convolve "Storage/Convolve/GaussianHigh"
- Convolve "Storage/Convolve/GaussianHigh"
- Convolve "Storage/Convolve/GaussianHigh"
- END
- END
-
- Crop 0 0 newwidth newheight
-
- IF bgswap=1 THEN DO
- Negative
- SaveAlphaAs ILBM "T:shadowalphatemp.ilbm"
- Buffer2Alpha
- PickupSwap
- Region Full
- ClearBuffer 0 0 0 FORCE
- FillMode Tile 0 0 0 Smooth
- FloodFill 0 0 1
- FillMode Solid 0 0 0 Smooth
- Swap
- CreateBuffer newwidth newheight shr shg shb FORCE
- Swap
- Merge 100 ALPHA
- Swap
- KillAlpha
- LoadBuffer "T:shadowtemp.ilbm" Force
- CALL pickitup
- LoadBuffer "T:shadowswaptemp.ilbm" Force
- LoadAlpha "T:shadowalphatemp.ilbm" Force
- Swap
- ADDRESS COMMAND 'Delete "T:shadowtemp.ilbm" QUIET'
- ADDRESS COMMAND 'Delete "T:shadowalphatemp.ilbm" QUIET'
- ADDRESS COMMAND 'Delete "T:shadowswaptemp.ilbm" QUIET'
- END
-
- IF aalias=1 THEN EdgeMode AntiAlias 0
-
- NewArea
- AddArea (newwidth/2)-xdiff (newheight/2)-ydiff
- FreeDraw
- EdgeMode Normal 0
- KillBrush
- SetPalette 0 r g b
- Redraw On
- Undo On
-
- EXIT
-
- pickitup:
- IF mgik=1 THEN
- MagicScissors
- ELSE
- Scissors
- Box 0 0 width height
- Region Full
- RETURN
-